﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using MySql.Data.MySqlClient;

namespace MovieSystem.Banco
{
   public class EntUsuario
   {
       private int intUsuarioId = 0;

       public int Id
       {
           get { return intUsuarioId; }
           set { intUsuarioId = value; }
       }

       private string strUsuarioNome = "";

       public string Nome
       {
           get { return strUsuarioNome; }
           set { strUsuarioNome = value; }
       }

       private int intUsuarioCPF = 0;

       public int CPF
       {
           get { return intUsuarioCPF; }
           set { intUsuarioCPF = value; }
       }

       private int intUsuarioPerfil = 0;

       public int Perfil
       {
           get { return intUsuarioPerfil; }
           set { intUsuarioPerfil = value; }
       }
       private string strUsuarioLogin = "";

       public string Login
       {
           get { return strUsuarioLogin; }
           set { strUsuarioLogin = value; }
       }
       private string strUsuarioSenha = "";

       public string Senha
       {
           get { return strUsuarioSenha; }
           set { strUsuarioSenha = value; }
       }
       private string strUsuarioEmail = "";

       public string Email
       {
           get { return strUsuarioEmail; }
           set { strUsuarioEmail = value; }
       }
       private Boolean bolUsuarioAtivo = true;

       public Boolean Ativo
       {
           get { return bolUsuarioAtivo; }
           set { bolUsuarioAtivo = value; }
       }

       public Boolean Inserir()
       {

           int intNumero = 0;
           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("Insert into usuario " +
                                                    "(nomeUsuario, cpfUsuario, perfilIdUsuario, loginUsuario, senhaUsuario, emailUsuario, ativoUsuario) values " +
                                                    "('" + this.Nome + "', '" + this.CPF + "', " + this.Perfil + ", '" + this.Login + "', '" + this.Senha + "', '" + this.Email + "', '" + this.Ativo + "');", EntConexao.bdConn);
               intNumero = commS.ExecuteNonQuery();

               EntConexao.FecharConexao();

           }


           return true;

       }

       public Boolean Alterar()
       {

           int intNumero = 0;
           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("update usuario set nomeUsuario= '" + this.Nome + "', cpfUsuario= '" + this.CPF + "', perfilIdUsuario = " + this.Perfil + "" +
                                                     " loginUsuario='" + this.Login + "', senhaUsuario='" + this.Senha + "', emailUsuario='" + this.Email + "', ativoUsuario='" + this.Ativo + "' " +
                                                     " where idUsuario = " + this.Id + ";", EntConexao.bdConn);
               intNumero = commS.ExecuteNonQuery();

               EntConexao.FecharConexao();

           }


           return true;

       }

       public Boolean Excluir()
       {

           int intNumero = 0;
           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("delete from usuario where idUsuario = " + this.Id + ";", EntConexao.bdConn);
               intNumero = commS.ExecuteNonQuery();

               EntConexao.FecharConexao();

           }


           return true;

       }

       public EntUsuario BuscaPorId(string parametro)
       {
           EntUsuario oUsuario = new EntUsuario();

           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("SELECT * FROM genero where idGenero =" + parametro + "", EntConexao.bdConn);
               MySqlDataReader reader = commS.ExecuteReader();

               while (reader.Read())
               {
                   oUsuario = new EntUsuario();
                   oUsuario.Id = Convert.ToInt32(reader["idUsuario"].ToString());
                   oUsuario.Nome = reader["nomeUsuario"].ToString();
                   oUsuario.CPF = Convert.ToInt32(reader["cpfUsuario"].ToString());
                   oUsuario.Perfil = Convert.ToInt32(reader["perfilIdUsuario"].ToString());
                   oUsuario.Login = reader["loginUsuario"].ToString();
                   oUsuario.Senha = reader["senhaUsuario"].ToString();
                   oUsuario.Email = reader["emailUsuario"].ToString();
                   oUsuario.Ativo = Convert.ToBoolean(reader["ativoUsuario"].ToString());

               }

               EntConexao.FecharConexao();
           }
           return oUsuario;
       }

       public List<EntUsuario> BuscaPorParametro(string parametro)
       {
           List<EntUsuario> lUsuarios = new List<EntUsuario>();

           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("SELECT * FROM usuario where nomeUsuario ='" + parametro + "' or cpfUsuario='" + parametro + "'  ", EntConexao.bdConn);
               MySqlDataReader reader = commS.ExecuteReader();

               while (reader.Read())
               {
                   EntUsuario oUsuario = new EntUsuario();
                   oUsuario.Id = Convert.ToInt32(reader["idUsuario"].ToString());
                   oUsuario.Nome = reader["nomeUsuario"].ToString();
                   oUsuario.CPF = Convert.ToInt32(reader["cpfUsuario"].ToString());
                   oUsuario.Perfil = Convert.ToInt32(reader["perfilIdUsuario"].ToString());
                   oUsuario.Login = reader["loginUsuario"].ToString();
                   oUsuario.Senha = reader["senhaUsuario"].ToString();
                   oUsuario.Email = reader["emailUsuario"].ToString();
                   oUsuario.Ativo =Convert.ToBoolean(reader["ativoUsuario"].ToString());
                   lUsuarios.Add(oUsuario);

               }

               EntConexao.FecharConexao();
           }
           return lUsuarios;
       }

       public List<EntUsuario> BuscaTodas()
       {
           List<EntUsuario> lUsuarios = new List<EntUsuario>();

           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("SELECT * FROM usuario;", EntConexao.bdConn);
               MySqlDataReader reader = commS.ExecuteReader();

               while (reader.Read())
               {
                   EntUsuario oUsuario = new EntUsuario();
                   oUsuario.Id = Convert.ToInt32(reader["idUsuario"].ToString());
                   oUsuario.Nome = reader["nomeUsuario"].ToString();
                   oUsuario.CPF = Convert.ToInt32(reader["cpfUsuario"].ToString());
                   oUsuario.Perfil = Convert.ToInt32(reader["perfilIdUsuario"].ToString());
                   oUsuario.Login = reader["loginUsuario"].ToString();
                   oUsuario.Senha = reader["senhaUsuario"].ToString();
                   oUsuario.Email = reader["emailUsuario"].ToString();
                   if (Convert.ToInt32(reader["ativoUsuario"].ToString()) == 0)
                   {
                       oUsuario.Ativo = false;
                   }
                   else
                   {
                       oUsuario.Ativo = true;
                   }
                   lUsuarios.Add(oUsuario);

               }

               EntConexao.FecharConexao();
           }
           return lUsuarios;
       }

   }
}
